<?php

session_start();
/*

Algoritmo Analisador Lexical (Nível 1) 
Def. token: TipoToken 
Inicio  
 Abre arquivo fonte 
 Ler(caracter) 
 Enquanto não acabou o arquivo fonte 
 Faça {
 	Enquanto ((caracter = “{“)ou (caracter = espaço)) e (não acabou o arquivo fonte) 
                      Faça { Se caracter = “{“ 
                 			Então {Enquanto (caracter ≠ “}” ) e  
                                           (não acabou o arquivo fonte) 
                                              Faça Ler(caracter) 
                                              Ler(caracter)} 
                                  Enquanto (caracter = espaço) e  
                               (não acabou o arquivo fonte) 
                                  Faça Ler(caracter) 
                                 } 
             se caracter != fim de arquivo 
  então {Pega Token 
                        Insere Lista} 
             } 
 Fecha arquivo fonte 
Fim
*/
function ler_caracter()
{
	$_SESSION['pos_linha'] = $_SESSION['pos_linha'] + 1;
}

function fim_da_linha()
{
	if($_SESSION['tam_linha_atual'] < $_SESSION['pos_linha'])
		return TRUE;
	else
		return FALSE;
}

function lexico($conteudo_linhas)
{
	//Cria variavél na sessão para salvar a linha que está sendo processada
	$_SESSION['linha'] = 1;
	
	//Cria variavél na sessão para salvar a posição que está na linha
	$_SESSION['pos_linha'] = 1;
	
	//Loop do enquanto nao acaba o arquivo
	foreach($conteudo_linhas as $linha)
	{
		
		//Cria variavél na sessão para salvar a posição que está na linha
		$_SESSION['linha_atual'] = $linha;
		
		//Tamanho da linha
		$count = strlen($linha);
		$_SESSION['tam_linha_atual'] = $count;
		
		for($i = 0; $i < $count; $i++)
		{
			//Remove coisas desnecessárias
			trata_comentarios_espacos($linha);
			
		}
		
	}
}

function trata_comentarios_espacos($linha)
{
	$remover[' '];
	
	//Espaço em branco e outros caracteres
	while(in_array($remover, $linha[$_SESSION['pos_linha']]) && !fim_da_linha())
	{
		ler_caracter();
	}
	
	//Comentario
	if($linha[$_SESSION['pos_linha']] == '{')
	{
		while($linha[$_SESSION['pos_linha']] != '}' && !fim_da_linha())
		{
			ler_caracter();
		}
			ler_caracter();
	}
	
	
} 

?>